package basicmorse;
import static org.junit.Assert.*;

import org.junit.Test;


public class MorseDecoderTest {

	@Test
	public void allLetters() {
		MorseDecoder decoder = new MorseDecoder();
		
		assertTrue(decoder.decode( ".-"		).equals("a"));
		assertTrue(decoder.decode( "-..."	).equals("b"));
		assertTrue(decoder.decode( "-.-."	).equals("c"));
		assertTrue(decoder.decode( "-.."	).equals("d"));
		assertTrue(decoder.decode( "."		).equals("e"));
		assertTrue(decoder.decode( "..-."	).equals("f"));
		assertTrue(decoder.decode( "--."	).equals("g"));
		assertTrue(decoder.decode( "...."	).equals("h"));
		assertTrue(decoder.decode( ".."		).equals("i"));
		assertTrue(decoder.decode( ".---"	).equals("j"));
		assertTrue(decoder.decode( "-.-"	).equals("k"));
		assertTrue(decoder.decode( ".-.."	).equals("l"));
		assertTrue(decoder.decode( "--"		).equals("m"));
		assertTrue(decoder.decode( "-."		).equals("n"));
		assertTrue(decoder.decode( "---"	).equals("o"));
		assertTrue(decoder.decode( ".--."	).equals("p"));
		assertTrue(decoder.decode( "--.-"	).equals("q"));
		assertTrue(decoder.decode( ".-."	).equals("r"));
		assertTrue(decoder.decode( "..."	).equals("s"));
		assertTrue(decoder.decode( "-"		).equals("t"));
		assertTrue(decoder.decode( "..-"	).equals("u"));
		assertTrue(decoder.decode( "...-"	).equals("v"));
		assertTrue(decoder.decode( ".--"	).equals("w"));
		assertTrue(decoder.decode( "-..-"	).equals("x"));
		assertTrue(decoder.decode( "-.--"	).equals("y"));
		assertTrue(decoder.decode( "--.."	).equals("z"));
	}
	
	@Test
	public void tokenToString() {
		assertTrue(MorseDecoder.Token.DOT.toString().equals("."));
		assertTrue(MorseDecoder.Token.DASH.toString().equals("-"));
		assertTrue(MorseDecoder.Token.LONG_PAUSE.toString().equals(" "));
	}

}
